This invention relates generally to the decoding of streams of packets, where each packet has a corresponding substream, and more particularly to the modification of timestamps of such streams for seamless branching.
With the advent and increasing popularity of digital-video-disc (DVD) and compact-disc read-only-memory (CD-ROM) technology, as well as usage of the Internet, the viewing of multimedia that is stored as a stream of data packets has also become very popular. For example, with respect to DVD technology, more and more movies and other content are becoming available on DVD""s, which are playable on dedicated DVD players intended for integration with a home stereo system, as well as on DVD players incorporated into a home personal computer (PC) system.
DVD""s, and other media that store stream of packets representing multimedia data, typically are such that each packet is associated with a corresponding substream, where each substream is intended for playback on a different device. For example, a DVD might have two substreams, an audio substream and a video substream. The audio substream contains packets of data intended for output to a device such as an amplifier coupled to one or more speakers, so that the audio may be heard. The video substream contains packets of data intended for output to a device such as a television or monitor, so that the video may be seen.
For such streaming data packets that are each associated with corresponding substreams, such that each different substream of data packets is intended for ultimate output and playback on a different device, the synchronization of the playback of the different substreams of data packets is crucial. For streaming data packets such as that stored on DVD""s, timestamps exist within the stream, so that the DVD player knows to output the data within a given packet to the device associated with the substream for that packet at the appropriate time. However, because the stream of packets may also contain branches to other packets within the stream, large jumps or breaks may occur within the sequence of timestamps. This is because the timestamps are typically preauthored into the stream of packets stored on a given DVD.
A DVD player, or similar device, must therefore accommodate the synchronization of substreams of data packets. According to the prior art, one manner by which this synchronization is accomplished includes two timers with a fixed offset corresponding to the size of the time gap when a time gap is encountered. Each stream decoder is separately switched to the second timer (the one corresponding to time after the time gap) at the precise moment when it is deemed to have presented all its data for the time before the time gap. When all streams are switched to the second timer the first timer is updated by the amount of the time gap so that both timers are the same and the stream decoders are all switched back to using the first timer, ready for any subsequent time gaps. (The typical DVD player or similar device has a main decoder that determines the substream type of each packet, and then sends the packet to the appropriate substream decoder for such packets, the substream decoder then decoding the data from the packet and sending it to the appropriate audio or video device as output.) However, as those of ordinary skill within the art can appreciate, synchronization among the timers for the substream decoders can be quite complex, especially where there are three or more substream decoders, and may require sophisticated timing circuitry within the DVD player.
In addition the prior art is not suitable when a rapid sequence of time gaps is encountered because more clocks might then be required. This means that this solution may be prone to synchronization errors should something go awryxe2x80x94such that the video playback of a DVD, for example, does not xe2x80x9cline upxe2x80x9d with the audio playback. This could occur, for example, if a decoder failed to deliver its data before it is switched to the second clock which (if the clock was switching to an earlier time) would result in a freeze of the video of length roughly equal to the time gap which may be an hour or more while the decoder waited for the new clock to reach the time corresponding to the timestamp on its data.
Therefore, there is a need for the synchronization of substreams of data packets intended for playback on different types of devices, that does not require the use of separate timers for before and after a timestamp gap. Such a solution should not require complex or sophisticated timing circuitry, and not be prone to synchronization errors that may occur with such circuitry. Such a solution should thus prevent large breaks or gaps from occurring within the playback of streams of data packets that may result when branching occurs within such streams.
The above-mentioned shortcomings, disadvantages and problems are addressed by the present invention, which will be understood by reading and studying the following specification. One aspect of the invention is a computerized system having a plurality of multimedia play devices (e.g., a television, monitor, or amplifier coupled to one or more speakers), and a multimedia read device (e.g., a DVD player). Each play device receives and plays data intended for that device. The multimedia read device reads a stream of data packets(e.g., as stored on a DVD), decodes the packets into data, and sends the data to a corresponding play device at the appropriate times. The appropriate time is based on relative timestamps accounting for accumulated time gaps resulting from branches within the stream.
For example, a multimedia read device, such as a DVD player, may have at least a stream decoder and two or more substream decoders. The stream decoder looks at each packet of data to determine to which substream decoder it should be sent. When the packet of data is sent, a relative timestamp is sent in conjunction therewith, instead of an absolute timestamp from the stream. This relative timestamp may be calculated as Trel=Tabsxe2x88x92Tacc, where Trel is the relative timestamp, Tabs is the absolute timestamp, and Tacc is the accumulated time gaps resulting from branches within the stream. When a branch is reached within a stream, Tacc is incremented by Tto-Tfrom, where Tto is the absolute timestamp immediately after the branch, and Tfrom is the absolute timestamp at the branch.
In this manner, the invention provides for the synchronization of substreams of data packets without utilization of separate timers for each substream decoder of a multimedia read device. Rather, a relative timestamp is passed from the main stream decoder to the substream decoders. Large jumps or breaks within the absolute timestamps as a result of branches within the stream are thus prevented, and not propagated to the substream decoders. It is believed that the invention also is not prone to synchronization errors, as may occur in the prior art solution of utilizing separate timers for each substream decoder.
The present invention includes computerized methods, systems, computers, multimedia read devices and computer-readable media of varying scope. In addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.